home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / sun / io / CharToByteConverter.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  2.8 KB  |  164 lines

  1. package sun.io;
  2.  
  3. import java.io.CharConversionException;
  4. import java.io.UnsupportedEncodingException;
  5.  
  6. /** @deprecated */
  7. @Deprecated
  8. public abstract class CharToByteConverter {
  9.    protected boolean subMode = true;
  10.    protected byte[] subBytes = new byte[]{63};
  11.    protected int charOff;
  12.    protected int byteOff;
  13.    protected int badInputLength;
  14.  
  15.    public static CharToByteConverter getDefault() {
  16.       Object var0 = Converters.newDefaultConverter(1);
  17.       return (CharToByteConverter)var0;
  18.    }
  19.  
  20.    public static CharToByteConverter getConverter(String var0) throws UnsupportedEncodingException {
  21.       Object var1 = Converters.newConverter(1, var0);
  22.       return (CharToByteConverter)var1;
  23.    }
  24.  
  25.    public abstract String getCharacterEncoding();
  26.  
  27.    public abstract int convert(char[] var1, int var2, int var3, byte[] var4, int var5, int var6) throws MalformedInputException, UnknownCharacterException, ConversionBufferFullException;
  28.  
  29.    public int convertAny(char[] var1, int var2, int var3, byte[] var4, int var5, int var6) throws ConversionBufferFullException {
  30.       if (!this.subMode) {
  31.          throw new IllegalStateException("Substitution mode is not on");
  32.       } else {
  33.          int var7 = var2;
  34.          int var8 = var5;
  35.  
  36.          while(var7 < var3) {
  37.             try {
  38.                this.convert(var1, var7, var3, var4, var8, var6);
  39.                return this.nextByteIndex() - var5;
  40.             } catch (MalformedInputException var13) {
  41.                byte[] var10 = this.subBytes;
  42.                int var11 = var10.length;
  43.                var8 = this.nextByteIndex();
  44.                if (var8 + var11 > var6) {
  45.                   throw new ConversionBufferFullException();
  46.                }
  47.  
  48.                for(int var12 = 0; var12 < var11; ++var12) {
  49.                   var4[var8++] = var10[var12];
  50.                }
  51.  
  52.                var7 = this.nextCharIndex();
  53.                var7 += this.badInputLength;
  54.                this.badInputLength = 0;
  55.                if (var7 >= var3) {
  56.                   this.byteOff = var8;
  57.                   return this.byteOff - var5;
  58.                }
  59.             } catch (UnknownCharacterException var14) {
  60.                throw new Error("UnknownCharacterException thrown in substititution mode", var14);
  61.             }
  62.          }
  63.  
  64.          return this.nextByteIndex() - var5;
  65.       }
  66.    }
  67.  
  68.    public byte[] convertAll(char[] var1) throws MalformedInputException {
  69.       this.reset();
  70.       boolean var2 = this.subMode;
  71.       this.subMode = true;
  72.       byte[] var3 = new byte[this.getMaxBytesPerChar() * var1.length];
  73.  
  74.       byte[] var6;
  75.       try {
  76.          int var4 = this.convert(var1, 0, var1.length, var3, 0, var3.length);
  77.          var4 += this.flush(var3, this.nextByteIndex(), var3.length);
  78.          byte[] var5 = new byte[var4];
  79.          System.arraycopy(var3, 0, var5, 0, var4);
  80.          var6 = var5;
  81.       } catch (ConversionBufferFullException var11) {
  82.          throw new InternalError("this.getMaxBytesPerChar returned bad value");
  83.       } catch (UnknownCharacterException var12) {
  84.          throw new InternalError();
  85.       } finally {
  86.          this.subMode = var2;
  87.       }
  88.  
  89.       return var6;
  90.    }
  91.  
  92.    public abstract int flush(byte[] var1, int var2, int var3) throws MalformedInputException, ConversionBufferFullException;
  93.  
  94.    public int flushAny(byte[] var1, int var2, int var3) throws ConversionBufferFullException {
  95.       if (!this.subMode) {
  96.          throw new IllegalStateException("Substitution mode is not on");
  97.       } else {
  98.          try {
  99.             return this.flush(var1, var2, var3);
  100.          } catch (MalformedInputException var9) {
  101.             int var5 = this.subBytes.length;
  102.             byte[] var6 = this.subBytes;
  103.             int var7 = var2;
  104.             if (var2 + var5 > var3) {
  105.                throw new ConversionBufferFullException();
  106.             } else {
  107.                for(int var8 = 0; var8 < var5; ++var8) {
  108.                   var1[var7++] = var6[var8];
  109.                }
  110.  
  111.                this.byteOff = this.charOff = 0;
  112.                this.badInputLength = 0;
  113.                return var5;
  114.             }
  115.          }
  116.       }
  117.    }
  118.  
  119.    public abstract void reset();
  120.  
  121.    public boolean canConvert(char var1) {
  122.       try {
  123.          char[] var2 = new char[1];
  124.          byte[] var3 = new byte[3];
  125.          var2[0] = var1;
  126.          this.convert(var2, 0, 1, var3, 0, 3);
  127.          return true;
  128.       } catch (CharConversionException var4) {
  129.          return false;
  130.       }
  131.    }
  132.  
  133.    public abstract int getMaxBytesPerChar();
  134.  
  135.    public int getBadInputLength() {
  136.       return this.badInputLength;
  137.    }
  138.  
  139.    public int nextCharIndex() {
  140.       return this.charOff;
  141.    }
  142.  
  143.    public int nextByteIndex() {
  144.       return this.byteOff;
  145.    }
  146.  
  147.    public void setSubstitutionMode(boolean var1) {
  148.       this.subMode = var1;
  149.    }
  150.  
  151.    public void setSubstitutionBytes(byte[] var1) throws IllegalArgumentException {
  152.       if (var1.length > this.getMaxBytesPerChar()) {
  153.          throw new IllegalArgumentException();
  154.       } else {
  155.          this.subBytes = new byte[var1.length];
  156.          System.arraycopy(var1, 0, this.subBytes, 0, var1.length);
  157.       }
  158.    }
  159.  
  160.    public String toString() {
  161.       return "CharToByteConverter: " + this.getCharacterEncoding();
  162.    }
  163. }
  164.